/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.gco.ws;

import edu.ucue.ptc.gco.mdl.Direccion;
import edu.ucue.ptc.gco.mdl.Ruta;
import edu.ucue.ptc.gco.ngc.RutaManagerLocal;
import edu.ucue.ptc.gco.util.AtributoInvalidoException;
import edu.ucue.ptc.gco.util.ElementoYaExisteException;
import java.util.List;
import javax.ejb.EJB;
import javax.jws.WebService;
import javax.ejb.Stateless;
import javax.jws.Oneway;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.xml.ws.RequestWrapper;

/**
 *
 * @author Valex
 */
@WebService(serviceName = "RutaWebServices")
@Stateless()
public class RutaWebServices {
    @EJB
    private RutaManagerLocal ejbRef;// Add business logic below. (Right-click in editor and choose
    // "Web Service > Add Operation"

    @WebMethod(operationName = "eliminarRuta")
    @Oneway
    public void eliminarRuta(@WebParam(name = "ruta") Ruta ruta,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) {
        ejbRef.eliminar(ruta);
    }

    @WebMethod(operationName = "listarTodosRuta")
    public List<Ruta> listarTodosRuta(@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) {
        return ejbRef.listarTodos();
    }

    @WebMethod(operationName = "obtenerPorIdRuta")
    public Ruta obtenerPorIdRuta(@WebParam(name = "idRuta") int idRuta,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) {
        return ejbRef.obtenerPorId(idRuta);
    }

    @WebMethod(operationName = "actualizarRuta")
    public void actualizarRuta(@WebParam(name = "ruta") Ruta ruta,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException {
        ejbRef.actualizar(ruta,nombreUsuario,contrasenaUsuario);
    }

    @WebMethod(operationName = "crearRuta")
    public void crearRuta(@WebParam(name = "ruta") Ruta ruta,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException, ElementoYaExisteException, Exception {
        ejbRef.crear(ruta);
    }

    @WebMethod(operationName = "obtenerDireccionesRuta")
    public List<Direccion> obtenerDireccionesRuta(@WebParam(name = "idRuta") int idRuta,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) {
        return ejbRef.obtenerDireccionesRuta(idRuta);
    }

    @WebMethod(operationName = "rutasEmpleado")
    public List<Ruta> rutasEmpleado(@WebParam(name = "cedula") String cedula, @WebParam(name = "user") String user, @WebParam(name = "pass") String pass) throws AtributoInvalidoException {
        return ejbRef.rutasEmpleado(cedula, user, pass);
    }
    
    @WebMethod(operationName = "rutaEmpleado")
    public Ruta rutaEmpleado(@WebParam(name = "idPersona") int idPersona, @WebParam(name = "user") String user, @WebParam(name = "pass") String pass) throws AtributoInvalidoException {
        return ejbRef.rutaEmpleado(idPersona, user, pass);
    }

    @WebMethod(operationName = "crear_1")
    @RequestWrapper(className = "crear_1")
    public void crear(@WebParam(name = "ruta") Ruta ruta, @WebParam(name = "direcciones") List<Direccion> direcciones, @WebParam(name = "user")String user, @WebParam(name = "pass")String pass) throws AtributoInvalidoException, ElementoYaExisteException, Exception {
        ejbRef.crear(ruta, direcciones, user, pass);
    }
    
}
